1. Field of the Invention
The field of the invention is that of electronic integrated circuits.
2. Description of the Prior Art
To be more precise, the invention concerns a microcontroller integrated circuit. A microcontroller is usually a VLSI (Very Large Scale integration) integrated circuit containing all or most of the components of a "computer". Its function is not predefined but depends on the program that it executes, with the result that in respect of potential applications it is very much a general purpose device.
A microcontroller necessarily comprises a processor core including a command sequencer (which is a device distributing various control signals to the other components according to the instructions of a program), an arithmetic and logic unit (for processing the data) and registers (which are specialized memory units).
The other components of the "computer" can be either internal or external to the microcontroller, however. In other words, the other components are integrated into either the microcontroller or auxiliary circuits.
These other components of the "computer" are data processing and/or storage devices, for example read only or random access memory containing the program to be executed, clocks and interfaces (serial or parallel).
As a general rule, a system based on a microcontroller therefore comprises a microchip containing the microcontroller, and a plurality of microchips containing the external data processing and/or storage devices which are not integrated into the microcontroller. A microcontroller-based system of this kind comprises, for example, one or more printed circuit boards on which the microcontroller and the other components are mounted.
It is the application program, i.e. the program which is executed by the microcontroller, which determines the overall operation of the microcontroller system. Each application program is therefore specific to a separate application.
In most current applications the application program is too large to be held in the microcontroller and is therefore stored in a memory external to the microcontroller. This program memory, which has only to be read, not written, is generally a reprogrammable read only memory (REPROM).
After the application program has been programmed in memory and then started in order to be executed by the microcontroller, the microcontroller system may not function as expected.
In the least unfavorable situation this is a minor dysfunction of the system and the microcontroller is still able to dialog with a test station via a serial or parallel interface. This test station is then able to determine the nature of the problem and indicate precisely the type of correction (software and/or physical) to be applied to the system for it to operate correctly.
Unfortunately, most dysfunctions of a microcontroller-based system result in a total system lock-up, preventing any dialog with a test station. It is then impossible to determine the type of fault, i.e. whether it is a physical fault (in the microcontroller itself, in an external read only memory, in a peripheral device, on a bus, etc) or a software fault (i.e. an error in the application program). The troubleshooting technique usually employed in these cases of total lock-up is based on the use of sophisticated test devices requiring the application of probes to the pins of the various integrated circuits of the microcontroller-based system under test.
There are various problems associated with the use of such test devices for troubleshooting a microcontroller-based system. The probes used in these test devices are very fragile, difficult to apply because of the small size of the circuit and their close packing, and may not make good contact with the circuit.
Also, because of their high cost, these test devices are not mass produced. Consequently, faulty microcontroller-based systems cannot be repaired immediately, wherever they happen to be located at the time, but must first be returned to a place where a test device is available.
Troubleshooting a microcontroller-based system in this way is time-consuming, irksome and costly.
To avoid the need for direct action on the microcontroller-based system each time the application program executed by the microcontroller of the system is changed, it is standard practise to use a downloadable read only memory to store the application program, a loading program being written into a mask-programmed read only memory of the microcontroller. The mask-programmed read only memory of the microcontroller is integrated into the microcontroller and programmed once and for all during manufacture of the microcontroller.
To change the application program the microcontroller is reset by running the downloading program. This downloading program can then communicate with a workstation connected to the microcontroller by an appropriate transmission line, this workstation containing the new application program to be written into the microcontroller. The downloading program receives the new application program and loads it into a read only memory external to the microcontroller.
Although this solution avoids the need for direct action on the microcontroller-based system (which would entail removing from the system the reprogrammable read only memories containing the application program, writing into these memories the new application program using an appropriate programming device and then replacing them in the system), it nevertheless has a major drawback, namely specialization of the microcontroller during manufacture.
Each type of reprogrammable memory is associated with a different downloading program because the programming parameters (voltage to be applied, duration for which the voltage is to be applied, etc) vary with the technology employed. The downloading program is written once and for all into the mask-programmed internal memory of the microcontroller and the latter is therefore restricted to using memory components of the type for which this downloading program was written. In other words, the microcontroller is not a standard component and this increases its cost of manufacture.
One object of the invention is to overcome these various drawbacks of the prior art.
To be more precise, an object of the invention is to provide a microcontroller circuit which can verify quickly, simply, reliably and at low cost the operation of a system based on the microcontroller.
Another object of the invention is to provide a microcontroller integrated circuit which can accurately locate the defective component or components of a system using the microcontroller in the event of dysfunction of the system.
A further object of the invention is to provide a microcontroller integrated circuit which avoids the need for direct action on the microcontroller-based system to change the application program, whilst remaining standard as regards the type of memory component with which it can be used in a system.